#pragma once
#include <nice2d/scene.h>

class SceneManager : public Node
{
    DECLARE_OBJECT(SceneManager)
public:
    SceneManager();
    ~SceneManager();
public:
    void setInitialScene(ScenePointer scene);
    void addScene(ScenePointer scene);
    ScenePointer getCurrentScene()const;
public:
    void switchTo(const std::string &scene);
public:
    bool process(std::shared_ptr<Message> message)override;
    void onUpdateNode(float deltaTime) override;
    void onDraw(sf::RenderTarget &target, sf::RenderStates states) const override;
private:
    std::unique_ptr<class SceneManagerData> data;
};
